package exam.niuke;

import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
import java.util.stream.Collectors;

/**
 * 字符个数统计
 * <p>
 * 编写一个函数，计算字符串中含有的不同字符的个数。
 * 字符在 ASCII 码范围内( 0~127 ，包括 0 和 127 )，换行表示结束符，不算在字符里。
 * 不在范围内的不作统计。多个相同的字符只计算一次
 * 例如，对于字符串 abaca 而言，有 a、b、c 三种不同的字符，因此输出 3 。
 */
public class ExamHJ10 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNext()) { // 注意 while 处理多个 case
            printResult(in.next());
        }
    }

    private static void printResult(String str) {
        char[] chars = str.toCharArray();
        Set<Character> set = new HashSet<>();
        for (char aChar : chars) {
            set.add(aChar);
        }
        set = set.stream().filter(c -> Integer.valueOf(c) <= 127)
                .collect(Collectors.toSet());
        System.out.println(set.size());
    }

}
